////////////////////////////////////////////////////////////////////////////////

#ifndef _PLAYER_H_
#define _PLAYER_H_

////////////////////////////////////////////////////////////////////////////////

#ifndef _GAMEOBJECT_H_
#include "gameobject.h"
#endif

#ifndef _WEAPON_H_
#include "weapon.h"
#endif

#include <list>

////////////////////////////////////////////////////////////////////////////////


/** Base class for all players
*
*  @author   Roman Pasechnik
*  @author   Anastasia Karpinska
*  @since    Nov 07th, 2009
*  @updated  Dec 09th, 2009
*/
class Player : public GameObject
{
////////////////////////////////////////////////////////////////////////////////

public:

////////////////////////////////////////////////////////////////////////////////


    /** Constructor */
    Player( int _ID );


    /** Destructor */
    virtual ~Player();


////////////////////////////////////////////////////////////////////////////////


    /** Gets the amount of player health points */
    size_t GetHealthPoints() const;


    /** Sets the amount of player health points */
    void SetHealthPoints( size_t _healthPoints );


////////////////////////////////////////////////////////////////////////////////

private:

////////////////////////////////////////////////////////////////////////////////


    /** Player's health points */
    size_t m_HealthPoints;


////////////////////////////////////////////////////////////////////////////////
};


/** [Utility type]: List of players */
typedef std::list<Player> PlayersList;


////////////////////////////////////////////////////////////////////////////////

#endif

////////////////////////////////////////////////////////////////////////////////
